// #include <iostream>
// #include<string>
// #include<vector>
// using namespace std;
//
//
//
//
// class MM
// {
// public:
//     MM(int age)
//     {
//         cout << "MM" << endl;
//     }
//     ~MM()
//     {
//         cout << "~MM" << endl;
//     }
//
//
//
// protected:
// };
//
// void test_user()
// {
//     //vector<MM> data;
//     //data.push_back(MM{1});
//     //data.push_back(MM{2});
//     //data.push_back(MM{3});
//
//     vector<MM*> value;
//     value.push_back(new MM(1));
//     value.push_back(new MM(2));
//     value.push_back(new MM(3));
//     value.clear();
//
// }
//
//
// /***
//  * 智能指针
//  * unique_ptr 独享
//  * weak_ptr 弱引用
//  * shared_ptr 共享
//  */
//
// template<typename ty>
// class my_ptr
// {
// public:
//     my_ptr(ty* ptr=nullptr):ptr(ptr)
//     {
//
//     }
//     ~my_ptr()
//     {
//         delete ptr;
//     }
// protected:
//     ty* ptr;
// };
//
// void test_ptr()
// {
//     my_ptr<int>pint(new int(123));
//     my_ptr<MM> pmm(new MM(12));
//
// }
//
// int main()
// {
//     // test_user();
//     test_ptr();
//     return 0;
// }